package Java核心技术1;

import org.junit.Test;

import java.io.FileInputStream;
import java.time.LocalDate;
import java.util.Objects;

class Em {
    private String name;
    private double la;
    private LocalDate localDate;


    public Em(String name, double la, int year, int month, int day) {
        this.name = name;
        this.la = la;
        localDate = LocalDate.of(year,month,day);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getLa() {
        return la;
    }

    public void setLa(double la) {
        this.la = la;
    }

    public LocalDate getLocalDate() {
        return localDate;
    }

    public void setLocalDate(LocalDate localDate) {
        this.localDate = localDate;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Em em = (Em) o;
        return Double.compare(em.la, la) == 0 && Objects.equals(name, em.name) && Objects.equals(localDate, em.localDate);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, la, localDate);
    }

    @Override
    public String toString() {
        return "Em{" +
                "name='" + name + '\'' +
                ", la=" + la +
                ", localDate=" + localDate +
                '}';
    }
}

public class EqualsTest {
    @Test
    public void test1() {
        Em alice1 = new Em("alice1", 75000, 1987, 12, 15);
        Em alice2 = alice1;
        Em alice3 = new Em("alice1", 75000, 1987, 12, 15);
        Em bob = new Em("bob", 50000, 1989, 10, 1);

        System.out.println(alice1 == alice2);
        System.out.println(alice1 == alice3);
        System.out.println(alice1.equals(alice3));
    }


    @Test
    public void test2(){

        try {
            int i = 2/0;
        }catch (Exception e){
            System.out.println("出现异常");
        }

        System.out.println("sss");
    }
}
